iT邦幫忙

2024 iThome 鐵人賽

DAY 4
2

https://ithelp.ithome.com.tw/upload/images/20240918/20118848G6f7TS9iHa.png

早前我們在 Graylog 伺服器上完成了多種記錄輸入器的建立後,下一步就是開始將手上的各種裝置設定記錄往 Graylog 傳送。

第一步針對 Linux 伺服器上的記錄傳送設定,大部份 Linux 作業系統均有內建 rsyslog 或 syslog-ng 套件,因此設定起來相當簡單。


Linux 確認 Syslog 套件安裝

在設定之前需要確認目前是否已經安裝有 Syslog 相關套件,可以利用以下指令檢查,如果沒有可立即安裝。

Debian/Ubuntu (APT)

# 檢查是否安裝 Syslog 相關套件
dpkg -l | grep syslog

# 若檢查沒有找到,可進行安裝
apt install rsyslog

Red Hat/CentOS/Rocky(YUM/DNF)

# 檢查是否安裝 Syslog 相關套件
yum list | grep syslog
dnf list | grep syslog

# 若檢查沒有找到,可進行安裝
yum install rsyslog
dns install rsyslog

通用檢查方式

# 檢查是否安裝有 rsyslog 或 syslog-ng
which rsyslogd syslog-ng

當確認已經有安裝之後,還需要確認服務是否能夠正確運作,以 rsyslog 為例:

systemctl status rsyslog

執行後會顯示 rsyslog 的服務狀態,請確認 Active 欄位若顯示為 active (running),即表示服務目前正常運作。

https://ithelp.ithome.com.tw/upload/images/20240918/20118848vORcTU2xw9.png
檢視 rsyslog 服務狀態


Linux 設定 syslog 記錄傳送

接著即可進行設定,讓 rsyslog 將系統記錄傳送一份至 Graylog 伺服器。

使用文字編輯器開啟 rsyslog 設定檔,本系列文章將採用 nano (請依個人喜好選用編輯器即可)。

sudo nano /etc/rsyslog.conf

在編輯器開啟設定檔後,請直接捲動到最下面,加入一行:

*.* @192.168.1.51:30514

前方的 *.* 設定表示將所有 syslog 的記錄傳送一份至遠端伺服器,一個 @ 符號表示採用 UDP 協定進行傳送 (若使用 @@ 表示以 TCP 協定傳送),後方請串接 Graylog 的伺服器 IP,以及 Graylog 伺服器上的 Syslog UDP 輸入器設定的連接埠號碼。

確認設定正確後,請按下 Ctrl + X 接著按下 Y,再按下 Enter 鍵即可存檔完成並退出編輯器。

https://ithelp.ithome.com.tw/upload/images/20240918/20118848OP4uqS6lTm.png
設定 rsyslog 記錄傳送

要套用新的設定值,請執行以下指令:

sudo systemctl restart rsyslog

若重新啟動服務的指令沒有發生錯誤,即表示已經成功。


Linux 確認記錄傳送

回到 Graylog 輸入器的頁面,找到 Syslog UDP 輸入器區塊,右方的 Network IO 如有數字變化,表示已經有資料進入。

https://ithelp.ithome.com.tw/upload/images/20240918/20118848aATWGbKb5k.png
記錄輸入器數量變化

如要確認收到的記錄內容,可以按下 Show received message 按鈕進入檢視詳細記錄,它會將這個輸入器所收到的記錄顯示出來。

https://ithelp.ithome.com.tw/upload/images/20240918/20118848SNjuOzAhB5.png
檢視收到的記錄

rsyslog 服務重啟後,它會立即產生好幾筆相關的記錄,這對我們確認設定是否正確剛好提供的最好的驗證方式。

補充:

按下 Show received message 進入檢視畫面時,它會抓取現在時間的過去 26 小時及未來 26 小時 (共 52 小時) 的所有記錄進行顯示。


Linux 產生測試記錄

若有某些情況下 syslog 套件沒有自動產生記錄時,也可以手動產生一筆記錄以進行測試。

在 Linux 作業系統中有一個 logger 指令可以協助測試,用法如下:

logger -t mytest "This is a test message"

執行完成後,先確認本機的 syslog 檔案是否有出現:

grep "mytest" /var/log/syslog 

如果有出現,表示 syslog 套件有正確收到。

https://ithelp.ithome.com.tw/upload/images/20240918/20118848oGZSeRFnlB.png
搜尋測試記錄


Linux 直接傳送測試

如果要排除 syslog 套件直接對 Graylog 的 Syslog UDP 輸入器進行測試,可以採用以下指令進行驗證:

echo "<14>testserver syslog from jason tools" | nc -u -w 0 192.168.1.51 30514

回到 Graylog 伺服器 Syslog UDP 輸入器的 Show received message 檢視,即可找到經由剛剛的指令送出的測試記錄。

https://ithelp.ithome.com.tw/upload/images/20240918/201188488ZARRI5Xw3.png
搜尋測試記錄

經由這些測試技巧,可以協助我們快速判斷問題是出在網路還是 syslog 套件的相關問題。


參考資料


上一篇
Graylog 記錄輸入器
下一篇
Graylog 裝置端設定:Windows
系列文
突破困境:開源記錄收集與分析系統10
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言